home *** CD-ROM | disk | FTP | other *** search
/ Packard Bell - Internet on a CD / internet on a cd.cdr / Internet / sites / Clementine_NASA / clemdsrc.hqx / jpeg_c.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-27  |  1.4 KB  |  56 lines

  1.  
  2. /* Structure Definitions */
  3. enum FmodeDef { INPUT, OUTPUT };
  4. typedef enum FmodeDef Fmode;
  5.  
  6. struct ByteStreamDef
  7. {
  8.     Fmode   mode;
  9.     short   stat;
  10.     FILE    *file;
  11. };
  12. typedef struct ByteStreamDef ByteStream;
  13.  
  14. extern void cByteStream( ByteStream *, char *FileName, Fmode FileMode );
  15. extern void dByteStream(ByteStream *);
  16. extern short ByteStream_read(ByteStream *);
  17. extern short ByteStream_write(ByteStream *, short c);
  18. extern short ByteStream_status(ByteStream *);
  19.  
  20. #define MEMORY  1
  21. #define DISK    0
  22. #ifdef __TURBOC__
  23. #define CHARH unsigned char huge
  24. #else
  25. #define CHARH unsigned char
  26. #endif
  27.  
  28. struct BitStreamDef
  29. {
  30.     ByteStream    bytestream;
  31.     short        BitBuffer;      /* Bit I/O buffer */
  32.     short         BitBuffMask;    /* Bit I/O buffer mask */
  33.     CHARH    *outstring;
  34.     char    mode;
  35.     unsigned long    bytesout;
  36.     unsigned short    bitmask[17];
  37. };
  38. typedef struct BitStreamDef BitStream;
  39.  
  40. extern void cBitStream( BitStream *, char *fn, Fmode fm );
  41. extern void dBitStream(BitStream *);
  42. extern short BitStream_write(BitStream *, short bits, short width);
  43. extern short BitStream_read(BitStream *, short bits);
  44.  
  45. /* Global Tables */
  46. extern float    qtable[64];
  47. extern int    zzseq[64];
  48. extern short    dcbits[16], acbits[16];
  49. extern char    dchuffval[12], achuffval[162];
  50.  
  51. /* Function Declarations */
  52. extern void inithuffcode();
  53. extern void encode(short *, BitStream *);
  54. extern void decode(short *, BitStream *);
  55. extern void decomp(BitStream *bs,CHARH *Image,long rows,long cols);
  56.